﻿using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace shop.Model
{
    public class logistics_sync_queryResult:WdtResult
    {

        public IEnumerable<logistics_sync_queryResultItem> trades { set; get; }



    }


    public class logistics_sync_queryResultItem
    {

        /// <summary>
        /// 主键
        /// 长度:11
        /// 必须:是
        /// 描述:主键,用于logistics_sync_ack回写状态
        /// </summary>
        [Column(IsPrimary =true)]
        public int rec_id { set; get; }

        /// <summary>
        /// 店铺编号
        /// 长度:20
        /// 必须:是
        /// 描述:代表店铺所有属性的唯一编码，用于店铺区分，ERP内支持自定义（ERP店铺界面设置）
        /// </summary>
        [Column(StringLength = 20)]
        public string shop_no { set; get; }

        /// <summary>
        /// 原始订单
        /// 长度:40
        /// 必须:是
        /// 描述:原始订单编号，商城或平台订单号
        /// </summary>
        [Column(StringLength = 40)]
        public string tid { set; get; }

        /// <summary>
        /// 物流单号
        /// 长度:100
        /// 必须:是
        /// 描述:物流或者快递面单对应的编号
        /// </summary>
        [Column(StringLength = 100)]
        public string logistics_no { set; get; }

        /// <summary>
        /// 物流方式
        /// 长度:6
        /// 必须:是
        /// 描述:响应值为代表物流方式的数字，数字对应的物流方式名称单击这里
        /// </summary>
        public short logistics_type { set; get; }

        /// <summary>
        /// 发货条件
        /// 长度:4
        /// 必须:是
        /// 描述:1款到发货 2货到付款(包含部分货到付款) 3分期付款
        /// </summary>
        public short delivery_term { set; get; }

        /// <summary>
        /// 发货时间
        /// 长度:
        /// 必须:是
        /// 描述:发货时间    时间格式：yyyy-MM-dd HH:mm:ss
        /// </summary>
        public DateTime consign_time { set; get; }

        /// <summary>
        /// 是否拆分发货
        /// 长度:1
        /// 必须:是
        /// 描述:是否拆分发货,1:拆单发货,0:不进行拆单发货
        /// </summary>
        [Column(StringLength = 1)]
        public string is_part_sync { set; get; }

        /// <summary>
        /// 原始子订单
        /// 长度:
        /// 必须:是
        /// 描述:子订单编号串，以逗号(,) 分隔,并且长度不固定(is_part_sync非0时才有效)
        /// </summary>
        [Column(StringLength = 4000)]
        public string oids { set; get; }

        /// <summary>
        /// 平台ID
        /// 长度:6
        /// 必须:是
        /// 描述:平台ID，固定值127
        /// </summary>
        public short platform_id { set; get; }

        /// <summary>
        /// 订单ID
        /// 长度:11
        /// 必须:是
        /// 描述:订单ID
        /// </summary>
        public int trade_id { set; get; }

        /// <summary>
        /// erp物流编号
        /// 长度:20
        /// 必须:是
        /// 描述:代表物流所有属性的唯一编码，用于物流区分，ERP内支持自定义（ERP物流界面设置）
        /// </summary>
        [Column(StringLength = 20)]
        public string logistics_code_erp { set; get; }

        /// <summary>
        /// erp物流公司名称
        /// 长度:40
        /// 必须:是
        /// 描述:ERP内自定义的物流名称，（对应ERP设置-基本设置-物流界面的物流名称）
        /// </summary>
        [Column(StringLength = 40)]
        public string logistics_name_erp { set; get; }

        /// <summary>
        /// 物流方式名称
        /// 长度:40
        /// 必须:是
        /// 描述:物流方式类型名称，（ERP设置-基本设置-物流界面的物流类型中文名称）
        /// </summary>
        [Column(StringLength = 40)]
        public string logistics_name { set; get; }

        /// <summary>
        /// 出库单id
        /// 长度:11
        /// 必须:是
        /// 描述:出库单id
        /// </summary>
        public int stockout_id { set; get; }

        /// <summary>
        /// 是否同步
        /// 长度:1
        /// 必须:是
        /// 描述:1:需要同步,0:不需要同步
        /// </summary>
        public int is_need_sync { set; get; }

        /// <summary>
        /// 同步状态
        /// 长度:1
        /// 必须:是
        /// 描述:0:等待同步2:同步失败,3:同步成功4:手动设置为同步成功,5:手动取消同步
        /// </summary>
        public int sync_status { set; get; }

        /// <summary>
        /// 是否需要多次同步
        /// 长度:
        /// 必须:否
        /// 描述:一个订单要多次同步时，最后一个为1,用于同步回写状态
        /// </summary>
        public int? is_last { set; get; }

        /// <summary>
        /// 店铺id
        /// 长度:6
        /// 必须:是
        /// 描述:默认为0
        /// </summary>
        public short shop_id { set; get; }

        /// <summary>
        /// 物流id
        /// 长度:11
        /// 必须:是
        /// 描述:默认为0
        /// </summary>
        public int logistics_id { set; get; }

        /// <summary>
        /// 描述
        /// 长度:200
        /// 必须:是
        /// 描述:同步说明
        /// </summary>
        [Column(StringLength = 200)]
        public string description { set; get; }

        /// <summary>
        /// 同步时间
        /// 长度:
        /// 必须:是
        /// 描述:默认为'0000-00-00 00:00:00'，成功同步时间
        /// </summary>
        public DateTime sync_time { set; get; }

        /// <summary>
        /// 在线
        /// 长度:1
        /// 必须:是
        /// 描述:默认为0，是否使用淘宝在线发货
        /// </summary>
        public short is_online { set; get; }

        /// <summary>
        /// 错误码
        /// 长度:200
        /// 必须:是
        /// 描述:默认为 ''，平台返回的错误码
        /// </summary>
        [Column(StringLength = 200)]
        public string error_code { set; get; }

        /// <summary>
        /// 错误描述
        /// 长度:200
        /// 必须:是
        /// 描述:默认为 ''，平台返回的错误描述
        /// </summary>
        [Column(StringLength = 200)]
        public string error_msg { set; get; }

        /// <summary>
        /// 重试次数
        /// 长度:4
        /// 必须:是
        /// 描述:默认为0，重试计数(有些同步失败可重试)
        /// </summary>
        public short try_times { set; get; }

        /// <summary>
        /// 最后修改时间
        /// 长度:
        /// 必须:是
        /// 描述:最后修改时间， 时间格式：yyyy-MM-dd HH:mm:ss
        /// </summary>
        public DateTime modified { set; get; }

        /// <summary>
        /// 创建时间
        /// 长度:
        /// 必须:是
        /// 描述:创建时间，时间格式：yyyy-MM-dd HH:mm:ss
        /// </summary>
        public DateTime created { set; get; }

        /// <summary>
        /// 序列号
        /// 长度:
        /// 必须:否
        /// 描述:序列号（存在序列号时返回序列号，无序列号时返回 flag）
        /// </summary>
        public List<logistics_sync_queryResultSn> sn_list { set; get; }



    }

    public class logistics_sync_queryResultSn
    {
        /// <summary>
        /// 子订单编号
        /// 长度:40
        /// 必须:是
        /// 描述:子订单编号
        /// </summary>
        [Column(StringLength = 40)]
        public string oid { set; get; }

        /// <summary>
        /// 序列号
        /// 长度:40
        /// 必须:是
        /// 描述:序列号
        /// </summary>
        [Column(StringLength = 40)]
        public string sn { set; get; }


    }



}
